TraceContract: A Scala DSL for Trace Analysis
نویسندگان
چکیده
In this paper we describe TRACECONTRACT, an API for trace analysis, implemented in the SCALA programming language. We argue that for certain forms of trace analysis the best weapon is a high level programming language augmented with constructs for temporal reasoning. A trace is a sequence of events, which may for example be generated by a running program, instrumented appropriately to generate events. The API supports writing properties in a notation that combines an advanced form of data parameterized state machines with temporal logic. The implementation utilizes SCALA’s support for defining internal Domain Specific Languages (DSLs). Furthermore SCALA’s combination of object oriented and functional programming features, including partial functions and pattern matching, makes it an ideal host language for such an API.
منابع مشابه
Internal versus External DSLs for Trace Analysis - (Extended Abstract)
This tutorial explores the design and implementation issues arising in the development of domain-specific languages for trace analysis. It introduces the audience to the general concepts underlying such special-purpose languages building upon the authors’ own experiences in developing both external domainspecific languages and systems, such as EAGLE, HAWK, RULER and LOGSCOPE, and the more recen...
متن کاملA Scala Embedded DSL for Combinatorial Optimization in Software Requirements Engineering
The goal of the presented work is to provide support for software requirements engineering domain experts in modeling combinatorial optimization problems that arise in requirements prioritization and release planning. A Domain-Specific Language (DSL), called reqT/CSP, is presented that integrates constraints modeling with requirements modeling. The DSL is embedded in the object-functional Scala...
متن کاملImplementing a Bidirectional Model Transformation Language as an Internal DSL in Scala
Despite advantages in terms of comprehensibility, verification, and maintainability, bidirectional transformation (bx) languages lack wide-spread adoption. Possible reasons are that tool support for bx languages is sometimes weak or outdated, that many bx languages are hard to integrate with existing software technologies, or that bx languages often cannot be mixed with unidirectional transform...
متن کاملMESA: Message-Based System Analysis Using Runtime Verification
In this paper, we present a novel approach and framework for run-time verification of large, safety critical messaging systems. This work was motivated by verifying the System Wide Information Management (SWIM) project of the Federal Aviation Administration (FAA). SWIM provides live air traffic, site and weather data streams for the whole National Airspace System (NAS), which can easily amount ...
متن کاملExperiences with Domain-Specific Language Embedding in Scala
Embedding domain-specific languages (DSLs) in generalpurpose programming languages offers a simpler path to implementation than developing standalone DSL processors. However, sacrifices must be made, particularly in formal analysis of DSL programs. This paper explores these tradeoffs in the context of the Kiama project that is investigating embedding of language processing DSLs in the Scala lan...
متن کامل